package com.lazy.book.common.listener;

import cn.dev33.satoken.listener.SaTokenListener;
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Component
@Slf4j
public class CustomUserListener implements SaTokenListener {


  @Override
  public void doLogin(String loginType, Object loginId, String tokenValue, SaLoginParameter loginParameter) {
    log.info("user doLogin ,userId:{},token:{},loginParameter:{}",loginId,tokenValue,loginParameter);
  }

  @Override
  public void doLogout(String loginType, Object loginId, String tokenValue) {
    log.info("user doLogout, userId:{}, token:{}", loginId, tokenValue);
  }

  @Override
  public void doKickout(String loginType, Object loginId, String tokenValue) {
    log.info("user doKickout, userId:{}, token:{}", loginId, tokenValue);
  }

  @Override
  public void doReplaced(String loginType, Object loginId, String tokenValue) {
    log.info("user doReplaced, userId:{}, token:{}", loginId, tokenValue);
  }

  /**
   *  账号封禁
   * @param loginType 账号类别
   * @param loginId 账号id
   * @param service 指定服务
   * @param level 封禁等级
   * @param disableTime 封禁时长，单位: 秒
   */
  @Override
  public void doDisable(String loginType, Object loginId, String service, int level, long disableTime) {

  }

  /**
   *  账号解封
   * @param loginType 账号类别
   * @param loginId 账号id
   * @param service 指定服务
   */
  @Override
  public void doUntieDisable(String loginType, Object loginId, String service) {

  }

  /**
   *  账号安全认证
   * @param loginType 账号类别
   * @param tokenValue token值
   * @param service 指定服务
   * @param safeTime 认证时间，单位：秒
   */
  @Override
  public void doOpenSafe(String loginType, String tokenValue, String service, long safeTime) {

  }

  /**
   *   账号注销安全认证
   * @param loginType 账号类别
   * @param tokenValue token值
   * @param service 指定服务
   */
  @Override
  public void doCloseSafe(String loginType, String tokenValue, String service) {

  }

  /**
   *   Session创建时触发
   * @param id SessionId
   */
  @Override
  public void doCreateSession(String id) {

  }

  /**
   *   Session注销时触发
   * @param id SessionId
   */
  @Override
  public void doLogoutSession(String id) {

  }

  /**
   *   Session 续期时触发
   * @param loginType 账号类别
   * @param loginId 账号id
   * @param tokenValue token 值
   * @param timeout 续期时间
   */
  @Override
  public void doRenewTimeout(String loginType, Object loginId, String tokenValue, long timeout) {

  }
}
